#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,k,b,s,mx=0;
vector<int> p,a;
vector<bool> f;
int sa=0,sb=0;
void dfs(int w,int tmp,int c,int& sa)
{
    if(f[w])return ;
    f[w]=1;
    if(c==k)
    {
        sa=max(tmp,sa);
        return;
    }
    if(a[w]>mx)
    {
        sa=max(tmp+(k-c)*a[w],sa);
        mx=a[w];
    }
    if(p[w]!=w)dfs(p[w],tmp+a[w],c+1,sa);
}
void solve()
{
    mx=0,sa=0,sb=0;
    cin>>n>>k>>b>>s;
    p=a=vector<int> (n+1);
    f=vector<bool> (n+1);
    for(int i=1;i<=n;i++)cin>>p[i];
    for(int i=1;i<=n;i++)cin>>a[i];
    dfs(b,0,0,sa);
    mx=0;
    f=vector<bool> (n+1);
    dfs(s,0,0,sb);
    if(sa>sb)cout<<"Bodya"<<endl;
    else if(sa==sb)cout<<"Draw"<<endl;
    else cout<<"Sasha"<<endl;
}
signed main()
{
    //ios::sync_with_stdio(false);
    //cin.tie(nullptr);
    int T=1;
    cin>>T;
    while(T--)
    {
       solve();
    }
    return 0;
}